<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Promise</title>
</head>
<body>

</body>
<script>

    /**
     *  回调函数和异步
     * */


    let foo1=(name,callback)=>{
        let   response = 'hello ' + name; // 远程请求数据 ，经过处理
        callback(response);
    }

    // foo1('Matt',(response)=>{
    //     alert(response);
    // })


    // foo().then((res)=>{}).then(()=>{}).then(()=>{})

    let boo1 = (name)=>{
        let response={
            data:'hello ' + name
        }

        return new Promise((resolve,reject)=>{
            resolve(response); // 程序运行正常的时候，传递数据
            reject('error'); // 如果程序异常，传递数据
        })
    }

     // axios

    // boo1('Matt2').then((res)=>{
    //     alert(res.data);
    // })



    let foo2=(message,callback)=>{
        let newResponse = 'the new ' + message;
        callback(newResponse);
    }

    foo1('Matt',(response)=>{
        foo2(response,(newMessage)=>{
            //...出现了很多层次的嵌套回调  ----- 回调地狱
        })
    })

    let boo2=(message)=>{
        const response={
            data:'the new ' + message
        }

        return new Promise((resolve)=>{
            resolve(response);
        })
    }


    boo1('Matt2').then((res)=>{
       return  boo2(res.data);
    }).then((res)=>{
        alert(res.data);
    })


    /**
     *   阮一峰
    * */

</script>
</html>